# ==================================================================================
# 服务器间协议生成器（SS Protocol）
# ==================================================================================
# 功能说明：
#   编译服务器之间的通信协议文件
#   SS = Server-Server，定义了游戏服务器集群内部的通信消息
# 
# 输入：
#   ${PROTOCOL_SS_LOGIC_PATH}/*.proto  - SS协议定义文件
# 
# 输出：
#   .pb.h / .pb.cc      - 标准C++ Protobuf代码
#   .nanopb.h / .cc     - NanoPB嵌入式代码
# 
# 应用场景：
#   - 网关服务器 <-> 游戏服务器
#   - 游戏服务器 <-> 数据库代理
#   - 游戏服务器 <-> 聊天服务器
#   - 跨服通信（跨服战斗、跨服交易等）
#   - 服务器间数据同步
# ==================================================================================

include ./define.makefile
.PHONY:all

all:${PROTOCOL_SS_LOGIC_H} ${PROTOCOL_SS_LOGIC_CPP} ${PROTOCOL_SS_STRUCT_H} ${PROTOCOL_SS_STRUCT_CPP}

# ----------------------------------
# 编译SS协议文件
# ----------------------------------
${PROTOCOL_SS_LOGIC_H} ${PROTOCOL_SS_LOGIC_CPP} ${PROTOCOL_SS_STRUCT_H} ${PROTOCOL_SS_STRUCT_CPP}:${PROTOCOL_SS_LOGIC_XML}
	@echo "  创建目标目录..."
	mkdir -p ${PROTOCGEN_FILE_PATH}
	mkdir -p ${NEW_PROTOCGEN_FILE_PATH}
	@echo "  编译服务器间协议（生成C++和NanoPB代码）..."
	${PROTOC} $^ --plugin=protoc-gen-nanopb=${NANOPB_PLUGIN}  -I${THIRD_PARTY_INC_PATH} -I${NANOPB_PLUGIN_PROTO} -I${PROTOCOL_PATH} -I${PROTOCOL_SS_PATH} -I${PROTOCOL_SS_LOGIC_PATH}  -I${PROTOCOL_CS_LOGIC_PATH} -I${COMMON_LOGIC_META_PATH} -I${RESDB_META_PATH} -I${PROTOCOL_DB_META_PATH} --cpp_out=${PROTOCGEN_FILE_PATH} --nanopb_out=-e.nanopb:${PROTOCGEN_FILE_PATH}
	@echo "  复制生成的文件到逻辑消息目录..."
	${FILE_COPY_EXE} --work="filecopy" --patch=${GAME_VERSION_PATCH} --src="${PROTOCOL_SS_LOGIC_H} ${PROTOCOL_SS_LOGIC_CPP}" --dst=${NEW_PROTOCGEN_FILE_PATH}/
	${FILE_COPY_EXE} --work="filecopy" --patch=${GAME_VERSION_PATCH} --src="${PROTOCOL_SS_STRUCT_H} ${PROTOCOL_SS_STRUCT_CPP}" --dst=${NEW_PROTOCGEN_FILE_PATH}/
